CALL : Appel du sous programme s
( PC ) + 1 -> Haut de la pile
s -> ( PC )
Nombre de cycle d'horloge : 2
Indicateurs à positionnés :
PA0 à PA2 ( pour les PIC 16 C 5x )
Registre PCLATH pour les autres PIC
Exemple :
R_etat equ 03h on affecte 03 à la variable R_etat utilisée ci - après
#define f 1 on affecte la valeur 1 à la variable f
#define Pa0 05h on affecte la valeur 05 à la variable Pa0
Movlw 00111111b on charge un masque pour modifier le registre d' etat
bsf R_etat, Pa0 on met le bit 5 du registre d état ( PA0 ) à 1
Andwf R_etat, f on sélectionne la page 1 pour un PIC 16 C 56 ( 0200 - 03FF )
Call sous_P Appel du sous programme sous_P à la 2 eme page de programme
CLRF : (Clear F)
Efface le contenu de ( f )
00 -> ( f )
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z=1
Syntaxe : CLRF registre
CLRW : (Clear W)
Efface le contenu du registre W
00 -> W
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z = 1
Syntaxe : CLRW
CLRWDT : (Clear WatchDog Timer)
Réinitialise le temporisateur du chien de garde
00 -> WDT
00 -> prédiviseur de WDT
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
TO = 1
PD = 1
Syntaxe : CLRWDT
COMF : (COMplement F)
Stocke en d le complément de f
f/ -> (d)
f est l'emplacement mémoire d 'un registre
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z si résultat stocké dans W ou f est nul ( Z=1 )
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f
Exemple :
Dans cet exemple on charge une valeur dans un registre ici 55h puis on complémente cette valeur qui devient alors AAh.
Reg_temp equ 0Ah OA correspond à l'adresse d' un registre temporaire
#define f 1 on affecte la valeur 1 à la variable f
Movlw 01010101b on charge 55h dans le registre W
Movwf Reg_temp on met W dans le registre temporaire
Comf Reg_temp, f on complémente le contenu du registre temporaire